tsdbrelay

本文翻译自tsdbrelay的官方文档

tsdbrelay指令

tsdbrelay转发OpenTSDB的数据包到OpenTSDB和Bosun的服务器中。

针对/api/put的请求调用会被转发到OpenTSDB,所有的返回结果(成功或是失败)都会被返回给请求发起方。如果转发到OpenTSDB的请求返回成功了,那么tsdbrelay就会采用另外一个接口/api/index将数据写入到Bosun服务器,。如果Bosun服务器并没有启动或者因为其他原因发送失败了,那么转发到Bosun的数据就会被丢弃,此时也不会有错误的状态返回给请求发起方。

针对/api/metadata/put的请求只会被转发到Bosun服务器上,其他的接口请求将会被转发到OpenTSDB上(不会发送到Bosun服务器上)。

其他的转发需要被指定,tsdbrelay将会按照指定的规则转发各个数据包,这就可以允许在多个tsdb的集群中复制数据。

tsdbralay同时也能够收到稀有指标的外部计数,它能够使用redis服务来作为计数增加的办法,如果采用其他的计数办法会显得更为困难。为了支持这个特性,我们可以在tsdbrelay的参数中增加-redis标签,然后使用接口/api/count来发送计数数据,/api/count这个接口接受的数据格式与/api/put一致。有一个scollector的特性,它需要定时的从Bosun/OpenTSDB中拉取这个数据(详情请参看scollector文档的Redis计数器章节)。

tsdbrelay能够反序列化指标来减少指标的基数,这样能够为拥有多个标签的指标带来更好的查询效率,举个例子-denormalize=os.cpu__host将会创建额外的数据段,其会把os.cpu{host=web01}转变成__web01.os.cpu{host=web01}结构。

用法

tsdbrelay [-l listen-address] [-b bosun-server] -t tsdb-server

各项标记分别是:

-b="bosun"
    目标bosun服务器,可以以host:port的形式来制定端口。
-t=""
    目标OpenTSDB服务器,可以以host:port的形式来制定端口。
-l=":4242"
    tsdbrelay的监听端口。
-v=false
    开关服务的详细日志。
-r=""
    附加的转储目标,会发送数据过去,采用逗号分隔,用于第二数据中心的数据备份与复制,需要注意,只有主数据中心的返回才会被转发到请求者。
-redis=""
    Redis服务用于存储扩展的计数服务
-db=0
    使用Redis的哪个database
-denormalize=""
    指定需要进行反序列化的指标,使用逗号分隔像`metric__tagname__tagname`一样的规则,这样的规则最终会被转变成`__tagvalue.tagvalue.metric`

译者的话

tsdbrealy的主程序采用go编写,只有一个文件,380行代码,采用tsdbrelay能够避免直接使用bosun,而bosun更新配置需要重启的问题,与此同时,也能够在备份机制中起到强大得作用。

results matching ""

    No results matching ""